package co.kr.bettersoft.carrotmerchantmobile.activity;
/**
 * MainMileage
 * 메인3. 마일리지
 *  고객 마일리지 현황을 리스트로 볼수 있고, 상단 버튼을 통해 그래프로 통계를 조회한다.
 */
import java.util.ArrayList;
import java.util.List;

import org.apache.http.util.EncodingUtils;
import org.json.JSONObject;

import co.kr.bettersoft.carrotmerchantmobile.adapter.MileageListAdapter;
import co.kr.bettersoft.carrotmerchantmobile.common.CarrotMerchantMobileRest;
import co.kr.bettersoft.carrotmerchantmobile.common.CommonConstant;
import co.kr.bettersoft.carrotmerchantmobile.domain.CheckMileageMileage;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class MainMileage  extends Activity{

	String TAG = "MainMileage";

	final int SELECT_MERCHANT_MEMBER_MILEAGE_LIST = 301;					

	// 전달받은 가맹점 정보
	static String merchantId;
	static String countryCode;
	static String languageCode;

	int app_end = 0;	// 뒤로가기 버튼으로 닫을때 2번만에 닫히도록

	CarrotMerchantMobileRest carrotMerchantMobileRest;
	String callResult = "";
	String tempstr = "";
	JSONObject jsonObject;

	int isRunning = 0;			// 연속 실행 방지. 실행 중에 다른 실행 요청이 들어올 경우, 무시한다.

	// 웹뷰용 URL
	String loadingURL = 	CommonConstant.mainMileageGraphUrl;	 	// "http://www.mcarrot.net/mMobileGraph.do";
	String postData = "";
	Boolean nowLoading = false;					// 우측 웹뷰 그래프 로딩 중 표시.
	Boolean webPageLoaded = false;				// 우측 웹뷰 로딩 완료 여부
	Boolean connected;	// 통신상태
	Boolean adding = false;			// 데이터 더하기 진행 중임.
	Boolean newSearch = true;       // 처음 검색인지 여부. 처음검색이면 어댑터에 세팅을, 처음이 아닌 추가라면 어댑터에 알림을.. 

	int max = 0;			// 마일리지 리스트에서 가져온 데이터 개수

	// 화면 구성
	View mileageLayout1, mileageLayout2;			// 마일리지 리스트 / 그래프
	Button callGraph,callMileage;		// 상단 버튼
	WebView mileageWebView;				// 그래프는 웹뷰로
	TextView custumerNum;		// 고객수
	GridView gridView;
	View emptyView;				// 데이터 없음 뷰
	// 진행바
	ProgressBar pb1;		// 중단 로딩 진행바

	private MileageListAdapter mileageListAdapter;		// 그리드뷰 사용할 아답터

	public ArrayList<CheckMileageMileage> entries1 = new ArrayList<CheckMileageMileage>();	// 1차적으로 조회한 결과. 
	List<CheckMileageMileage> entriesFn = new ArrayList<CheckMileageMileage>();				// 최종 산출물

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	// 핸들러
	Handler handler = new Handler(){
		@Override
		public void handleMessage(Message msg){
			try{
				Bundle b = msg.getData();		
				if(b.getInt("showListYN")==1){
					// 데이터를 화면에.. 
					if((entriesFn!=null)&&(entriesFn.size()>0)){
						//							Log.e(TAG,"indexDataFirst::"+indexDataFirst);
						custumerNum.setText(entriesFn.size()+"");
						if(newSearch){		// 새로운 검색일 경우 새로 설정, 추가일 경우 알림만 하기 위함.
							setGriding();
							newSearch = false;		// 다시 돌려놓는다. 이제는 최초 검색이 아님.
						}else{
							mileageListAdapter.notifyDataSetChanged();		// 알림 -> 변경사항이 화면상에 업데이트 되도록함.
						}
						gridView.setEnabled(true);			// 그리드 뷰 허용함.
					}else{
						Log.d(TAG,"no data");
						custumerNum.setText("0");				// 이용 고객 데이터없음 -->  이용 고객수 = 0
						if(gridView==null){
							gridView  = (GridView)findViewById(R.id.gridview);
						}
						emptyView = findViewById(R.id.empty1);		// 데이터 없으면 '빈 페이지'(데이터 없음 메시지)표시
						gridView.setEmptyView(emptyView);
						gridView.setVisibility(View.GONE);			//   0 visible   4 invisible   8 gone
						emptyView.setVisibility(View.VISIBLE);
					}
					adding = false;
					hidePb();
				}
				if(b.getInt("showProgress")==1){	
					//프로그래스바 실행
					if(pb1==null){
						pb1=(ProgressBar) findViewById(R.id.main_activity_mileage_progressbar01);
					}
					pb1.setVisibility(View.VISIBLE);
				}else if(b.getInt("showProgress")==2){
					//프로그래스바  종료
					if(pb1==null){
						pb1=(ProgressBar) findViewById(R.id.main_activity_mileage_progressbar01);
					}
					pb1.setVisibility(View.INVISIBLE);
				}
				if(b.getInt("showAlert")==1){					 // 경고창 . 
					//
					new AlertDialog.Builder(returnThis())
					.setTitle(CommonConstant. alertTitle )                                        // *** "Carrot" 하드코딩 --> 변수사용 
					.setMessage(b.getString("msg"))
					.setIcon(R.drawable.ic_dialog_img)		
					.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialog, int whichButton) {
							//
						}})
						.setNegativeButton("", null).show();
				}else if(b.getInt("showAlert")==2){
					new AlertDialog.Builder(returnThis())
					.setTitle(CommonConstant. alertTitle )                                        // *** "Carrot" 하드코딩 --> 변수사용 
					.setMessage(b.getString("msg"))
					.setIcon(R.drawable.ic_dialog_img)		
					.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialog, int whichButton) {
							goMileageScreen();
						}})
						.setNegativeButton("", null).show();
				}
				if(b.getInt("showErrToast")==1){
					Toast.makeText(MainMileage.this, getString(R.string.failed_to_open_page), Toast.LENGTH_SHORT).show();
					// 페이지를 불러오는데 실패했습니다.\n잠시후 다시 시도해주시기 바랍니다.		
				}
				if(b.getInt("showToast")==1){		// 화면에 토스트 띄우기. 띄우는 문구는 msg 로 받은 값
					Toast.makeText(MainMileage.this, b.getString("msg"), Toast.LENGTH_SHORT).show();
					//					customToastShow(2,b.getString("msg"));
				}

				switch (msg.what)
				{
				case SELECT_MERCHANT_MEMBER_MILEAGE_LIST : runOnUiThread(new RunnableSelectMerchantMemberMileageList());		
				break;
				default : 
					break;
				}	

			}catch(Exception e){
				e.printStackTrace();
			}
		}
	};

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	

	@Override
	public void onCreate(Bundle savedInstanceState) {
		Log.w(TAG,"onCreate");
		super.onCreate(savedInstanceState);

		requestWindowFeature(Window.FEATURE_NO_TITLE );	// 타이틀바 제거
		setContentView(R.layout.main_mileage);

		carrotMerchantMobileRest = new CarrotMerchantMobileRest();

		mileageLayout1 = findViewById(R.id.main_mileage_layout1);
		mileageLayout2 = findViewById(R.id.main_mileage_layout2);

		callGraph = (Button) findViewById(R.id.main_mileage_call_graph);
		callMileage = (Button) findViewById(R.id.main_mileage_call_mileage);

		mileageWebView = (WebView) findViewById(R.id.mileage_webview);
		custumerNum = (TextView) findViewById(R.id.main_mileage_text2);

		//			registerWebView().setUseWideViewPort(true);		// 사용하지 않음.
		mileageWebView.setWebViewClient(new MyWebViewClient());
		mileageWebView.setWebChromeClient(new MyWebChromeClient());  // MyWebChromeClient 지정         -- javascript 사용 됨. 
		mileageWebView.addJavascriptInterface(new AndroidBridge(), "hybrid");			// 하이브리드로 상호 통신 가능
		WebSettings webSet = mileageWebView.getSettings();
		webSet.setJavaScriptEnabled(true);			// JavaScript 허용.
		// 확대/축소 금지. - 웹에서 차단함.
		//			webSet.setSupportZoom(true);
		//			webSet.setBuiltInZoomControls(true);

		entriesFn = new ArrayList<CheckMileageMileage>();

		// progress bar
		pb1 = (ProgressBar) findViewById(R.id.main_activity_mileage_progressbar01);		// 로딩(좌중앙)

		// 마일리지 화면 상단 버튼 리스너
		callGraph.setOnClickListener(new OnClickListener() {		// 그래프 모드로 전환
			@Override
			public void onClick(View v) {
				Log.w(TAG,"homeSaveMileageBtn click");
				mileageLayout1.setVisibility(View.INVISIBLE);
				mileageLayout2.setVisibility(View.VISIBLE);
				if(!webPageLoaded && !nowLoading){
					String versionRelease = Build.VERSION.RELEASE;
					Log.d(TAG,"RELEASE:"+Build.VERSION.RELEASE);
					if(Integer.parseInt(versionRelease.substring(0, 1))<3){
						nowLoading = true;							// test1
						//						new backgroundMileageGraph().execute();
						postData = "Merchant-Language="+languageCode+"&Merchant-Country="+countryCode+"&Merchant-Id="+merchantId;				// 파라미터 : Merchant-Language / Merchant-Country
						mileageWebView.postUrl(loadingURL, EncodingUtils.getBytes(postData, "BASE64"));
						mileageWebView.getSettings().setJavaScriptEnabled(true);
						//							showVersionAlertAndBack(getResources().getString(R.string.is_to_low_android_version30));		// 버전 3.0 이하일경우 알림창을 띄우고 마일리지 목록으로 --> 사용 안함. 최소버전 3.0
					}else{
						// 비동기로 URL 오픈 실행
						nowLoading = true;
						//						new backgroundMileageGraph().execute();
						postData = "Merchant-Language="+languageCode+"&Merchant-Country="+countryCode+"&Merchant-Id="+merchantId;				// 파라미터 : Merchant-Language / Merchant-Country
						mileageWebView.postUrl(loadingURL, EncodingUtils.getBytes(postData, "BASE64"));
						mileageWebView.getSettings().setJavaScriptEnabled(true);
					}
				}
			}
		});
		callMileage.setOnClickListener(new OnClickListener() {		// 마일리지 모드로 전환
			@Override
			public void onClick(View v) {
				Log.w(TAG,"homeSaveMileageBtn click");
				goMileageScreen();
			}
		});
	}

	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	

	// 데이터를 화면에 세팅
	/**
	 * setGriding
	 *  가져온 마일리지 데이터를 화면에 세팅한다
	 *
	 * @param
	 * @param
	 * @return
	 */
	public void setGriding(){
		mileageListAdapter = new MileageListAdapter(this, entriesFn);
		gridView  = (GridView)findViewById(R.id.gridview);
		gridView.setAdapter(mileageListAdapter);
	}


	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	


	/**
	 * 러너블. 고객 마일리지 리스트를 가져온다.
	 */
	class RunnableSelectMerchantMemberMileageList implements Runnable {
		public void run(){
			new backgroundSelectMerchantMemberMileageList().execute();
		}
	}
	/**
	 * backgroundSelectMerchantMemberMileageList
	 *  비동기로 
	 * 
	 *
	 * @param
	 * @param
	 * @return
	 */
	public class backgroundSelectMerchantMemberMileageList extends  AsyncTask<Void, Void, Void> { 
		@Override protected void onPostExecute(Void result) {  
		} 
		@Override protected void onPreExecute() {  
		} 
		@Override protected Void doInBackground(Void... params) {  
			Log.d(TAG,"backgroundSelectMerchantMemberMileageList");
			
			// 파리미터 세팅
			CheckMileageMileage checkMileageMileageParam = new CheckMileageMileage();
			checkMileageMileageParam.setMerchantId(merchantId);	
			// 호출
			showPb();
			callResult = carrotMerchantMobileRest.RestSelectMerchantMemberMileageList(checkMileageMileageParam, returnThis());
			// 결과 처리
			if(callResult.equals("S")){
				entriesFn = carrotMerchantMobileRest.getCheckMileageMileageEntriesFn();
				new backgroundShowList().execute();
			}else{	
				hidePb();
				adding = false;	
			}
			return null; 
		}
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	


	// 마일리지 화면 보기
	/**
	 * goMileageScreen
	 *  마일리지 화면을 보여준다
	 *
	 * @param
	 * @param
	 * @return
	 */
	public void goMileageScreen(){
		mileageLayout2.setVisibility(View.INVISIBLE);
		mileageLayout1.setVisibility(View.VISIBLE);

		if(!adding){
			adding = true;
			showPb();
			new backgroundSelectMerchantMemberMileageList().execute();		// 비동기로 고객 마일리지 리스트 가져옴.
		}
	}



	/*
	 * 고객 마일리지 리스트를 화면에 보여준다. 
	 */
	// 비동기로 화면에 데이터 보여주기
	/**
	 * backgroundShowList
	 *  비동기로 고객 마일리지 리스트를 화면에 보여주는 함수를 호출한다
	 *
	 * @param
	 * @param
	 * @return
	 */
	public class backgroundShowList extends  AsyncTask<Void, Void, Void> { 
		@Override protected void onPostExecute(Void result) {  
		} 
		@Override protected void onPreExecute() {  
		} 
		@Override protected Void doInBackground(Void... params) {  
			Log.w(TAG,"backgroundShowList");
			showList();
			return null; 
		}
	}


	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// 웹뷰 관련

	// 비동기로 그래프 웹뷰 실행한다--> 바로 실행한다
	//	/**
	//	 * backgroundMileageGraph
	//	 *   그래프 웹뷰 실행한다
	//	 *
	//	 * @param
	//	 * @param
	//	 * @return
	//	 */
	//	public class backgroundMileageGraph extends  AsyncTask<Void, Void, Void> { 
	//		@Override protected void onPostExecute(Void result) {  
	//		} 
	//		@Override protected void onPreExecute() {  
	//		} 
	//		@Override protected Void doInBackground(Void... params) {  
	//			Log.w(TAG,"backgroundNotice");
	//
	//			runOnUiThread(new Runnable(){
	//				public void run(){
	//					postData = "Merchant-Language="+languageCode+"&Merchant-Country="+countryCode+"&Merchant-Id="+merchantId;				// 파라미터 : Merchant-Language / Merchant-Country
	//					mileageWebView.postUrl(loadingURL, EncodingUtils.getBytes(postData, "BASE64"));
	//					mileageWebView.getSettings().setJavaScriptEnabled(true);
	//				}
	//			});
	//
	//			return null; 
	//		}
	//	}
	/**
	 * Bridge Class
	 *  하이브리드 안드로이드 브릿지  - 웹페이지로부터 요청을 받아서 처리한다.
	 */
	private class AndroidBridge {
		//		// 액티비티 종료
		//		public void finishActivity() {
		//			handler.post(new Runnable() {
		//				public void run() {
		//					finish();
		//				}
		//			});
		//		}
	}

	/**
	 * MyWebViewClient
	 * 페이지 로드, 완료 이벤트발생 가능한 웹뷰 클라이언트
	 *
	 */
	private class MyWebViewClient extends WebViewClient {
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			view.loadUrl(url);
			return true;
		}
		/**
		 * onPageFinished
		 * 로딩 끝나면 프로그래스바 숨기고 재로딩 가능하도록한다
		 *
		 * @param view
		 * @param url
		 * @return
		 */
		@Override
		public void onPageFinished(WebView view, String url) {
			super.onPageFinished(view, url);
			hidePb();
			//				webPageLoaded = true;
			nowLoading = false;
		}
		/**
		 * onPageStarted
		 * 웹뷰 로딩 시작하면 시간 재서 로딩 안되면 멈추고 알린다.
		 *
		 * @param view
		 * @param url
		 * @param favicon
		 * @return
		 */
		@Override
		public void onPageStarted(WebView view, String url, Bitmap favicon) {
			super.onPageStarted(view, url, favicon);
			showPb();
			new Thread(new Runnable() {
				@Override
				public void run() {
					try {		// 제한 시간 측정
						Thread.sleep(CommonConstant.serverConnectTimeOut);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}finally{
						runOnUiThread(new Runnable(){		// 웹뷰는 UIThread 이용해야 함.
							public void run(){
								//								if(sleepCounter<2){			// 슬립 스레드 여러개일 경우 방지
								if(mileageWebView.getProgress()<100) {		// 로딩 안됐으면
									// do what you want
									mileageWebView.stopLoading();		// 멈추고
									hidePb();
									if(nowLoading){
										showErrMsg();					// 알림
									}
									webPageLoaded = false;
								}
								//								}else{
								//	        						sleepCounter = sleepCounter - 1;
								//	        					}
							}
						});
						nowLoading = false;				// 시간이 지나면 성공 여부를 떠나서 재 로딩 가능.
					}
				}
			}).start();
		}
	}
	/**
	 * MyWebChromeClient
	 *  자바스크립트 alert 사용 위한 크롬 클라이언트이다
	 *
	 */
	private class MyWebChromeClient extends WebChromeClient {
		//Javascript alert 실행 가능함
		@Override
		public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
			final JsResult finalRes = result;
			//AlertDialog 생성
			new AlertDialog.Builder(view.getContext())
			.setMessage(message)
			.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int which) {
					finalRes.confirm(); 
				}
			})
			.setCancelable(false)
			.create()
			.show();
			return true;
		}
	}

	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	/**
	 * returnThis
	 *  컨택스트 리턴한다
	 *
	 * @param
	 * @param
	 * @return
	 */
	public Context returnThis(){
		return this;
	}

	/**
	 * showList
	 *   고객 마일리지 리스트를 화면에 보여준다
	 *
	 * @param
	 * @param
	 * @return
	 */
	public void showList(){
		Log.d(TAG, "showList");
		hidePb();
		new Thread(
				new Runnable(){
					public void run(){
						Message message = handler.obtainMessage();
						Bundle b = new Bundle();
						b.putInt("showListYN", 1);		// 보여주기.
						message.setData(b);
						handler.sendMessage(message);
					}
				}
		).start();
	}
	/**
	 * showResultDialog
	 * 얼럿 띄운다
	 *
	 * @param msg
	 * @param 
	 * @return
	 */
	public void showResultDialog(final String msg){
		new Thread(
				new Runnable(){
					public void run(){
						Message message = handler.obtainMessage();				
						Bundle b = new Bundle();
						b.putInt("showAlert", 1);
						b.putString("msg", msg);			// 화면에 보여줄 메시지
						message.setData(b);
						handler.sendMessage(message);
					}
				}
		).start();
	}
	//토스트를 얼럿으로 바꾼다. -> 3.0버전 이하 그래프 사용 불가 메시지 -> 최소 버전 3.0으로 수정하면서 사용 안함
	/**
	 * showResultDialog
	 * 안드로이드 버전 얼럿 띄우고 마일리지 모드로 돌아간다. 
	 *
	 * @param msg
	 * @param 
	 * @return
	 */
	public void showVersionAlertAndBack(final String msg){
		new Thread(
				new Runnable(){
					public void run(){
						Message message = handler.obtainMessage();				
						Bundle b = new Bundle();
						b.putInt("showAlert", 2);
						b.putString("msg", msg);			// 화면에 보여줄 메시지
						message.setData(b);
						handler.sendMessage(message);
					}
				}
		).start();
	}
	/**
	 * showPb
	 *  중앙 프로그래스바 가시화한다
	 *
	 * @param
	 * @param
	 * @return
	 */
	public void showPb(){
		new Thread( 
				new Runnable(){
					public void run(){
						Message message = handler .obtainMessage();
						Bundle b = new Bundle();
						b.putInt( "showProgress" , 1);
						message.setData(b);
						handler .sendMessage(message);
					}
				}
		).start();
	} 
	/**
	 * hidePb
	 *  중앙 프로그래스바 비가시화한다
	 *
	 * @param
	 * @param
	 * @return
	 */
	public void hidePb(){
		new Thread(
				new Runnable(){
					public void run(){
						Message message = handler .obtainMessage();
						Bundle b = new Bundle();
						b.putInt( "showProgress" , 2);
						message.setData(b);
						handler .sendMessage(message);
					}
				}
		).start();
	}
	// 화면에 토스트 띄움 msg 변수에 내용을 넣어서 호출하면 화면에 토스트를 띄운다.
	/**
	 * showMsg
	 *  화면에 error 토스트 띄운다
	 *
	 * @param msg
	 * @param
	 * @return
	 */
	public void showMsg(final String msg){			
		new Thread(
				new Runnable(){
					public void run(){
						Message message = handler.obtainMessage();				
						Bundle b = new Bundle();
						b.putInt("showToast", 1);
						b.putString("msg", msg);
						message.setData(b);
						handler.sendMessage(message);
					}
				}
		).start();
	} 
	// 화면에 error 토스트 띄움..
	/**
	 * showErrMsg
	 *  화면에 error 토스트 띄운다
	 *
	 * @param
	 * @param
	 * @return
	 */
	public void showErrMsg(){			
		new Thread(
				new Runnable(){
					public void run(){
						Message message = handler.obtainMessage();				
						Bundle b = new Bundle();
						b.putInt("showErrToast", 1);
						message.setData(b);
						handler.sendMessage(message);
					}
				}
		).start();
	} 

	/*

	/*
	 *  닫기 버튼 2번 누르면 종료 됨.(non-Javadoc)
	 * @see android.app.Activity#onBackPressed()
	 */
	/**
	 * onBackPressed
	 *  닫기 버튼 2번 누르면 종료 한다
	 *
	 * @param
	 * @param
	 * @return
	 */
	@Override
	public void onBackPressed() {
		Log.i("MainTabActivity", "finish");		
		if(app_end == 1){
			finish();
		}else{
			app_end = 1;
			Toast.makeText(MainMileage.this, R.string.noti_back_finish, Toast.LENGTH_SHORT).show();
			new Thread( 
					new Runnable(){
						public void run(){
							try {
								Thread.sleep(3000);
								app_end = 0;
							} catch (InterruptedException e) {e.printStackTrace();}
						}
					}
			).start();
		}
	}

	/**
	 * onPause
	 *  액티비티 pause 시 웹뷰 재로드 가능하도록 한다
	 *
	 * @param
	 * @param
	 * @return
	 */
	@Override
	public void onPause(){
		webPageLoaded = false;		// 재로드 가능
		if(mileageWebView!=null){
		}
		super.onPause();
	}

	/**
	 * onResume
	 *  리쥼시 마일리지 화면 모드로 전환하고 마일리지 정보를 가져와서 보여준다
	 *
	 * @param
	 * @param
	 * @return
	 */
	@Override
	public void onResume(){
		super.onResume();
		merchantId = MainTabs.merchantId;
		countryCode = MainTabs.countryCode;
		languageCode = MainTabs.languageCode;
		app_end = 0;
		Log.e(TAG,"webPageLoaded:"+webPageLoaded+"//nowLoading:"+nowLoading);
		mileageLayout2.setVisibility(View.INVISIBLE);
		mileageLayout1.setVisibility(View.VISIBLE);
		if(!adding){
			adding = true;
			showPb();
			new backgroundSelectMerchantMemberMileageList().execute();		// 비동기로 고객 마일리지 리스트 가져옴.
		}else{
			Log.d(TAG,"Already Loading...");
		}
	}


}
